#pragma once
#include "Fish.h"
#include "Subject.h"
#include <vector>

class Aquarium : public Subject {
public:
	static Aquarium& Aquarium::getAquarium();

	void Aquarium::addFish(FishFactory::FISH_TYPE impl, Point& speed, const Point& location, bool transparent, int size);
	void Aquarium::removeFish(int fishID);

	void feedAquarium();
	void emptyAquarium();
	void pauseAquarium();
	void debugAquarium();

private:
	// singleton instance
	static Aquarium aquariumSingleton;

	// fish container
	std::vector<Fish *> fishVector;



	Aquarium();
	Aquarium(const Aquarium& );
	const Aquarium& operator=(const Aquarium& );
};